\thispagestyle{appendixheader}
\stepcounter{app}
\setcounter{app_fig}{1}
\setcounter{app_tab}{1}
\setcounter{equation}{0}
\renewcommand\theequation{附\arabic{app}-\arabic{equation}}
% \renewcommand\theequation{\Alph{app}.\arabic{equation}}
\renewcommand\chaptername{附录}
\renewcommand\chaptername{Appendix} 
\renewcommand\thechapter{附录\zhnum{app}} 

\setcounter{chapter}{0}
\setcounter{section}{0}

\chapter{“320”总线通道定义}{
\stepcounter{app}
\setcounter{app_fig}{1}
\setcounter{app_tab}{1}

\begin{apptab}[!htbp]
    \bicaption{\enspace “NewReq通道定义}{\enspace NewReq Channel Define}
    \stepcounter{app_tab}
    \label{apptab:1}
    \centering
    \footnotesize% fontsize
    \setlength{\tabcolsep}{4pt}% column separation
    \renewcommand{\arraystretch}{1.2}%row space 
    \begin{tabular}{@{}llll@{}}
    \toprule
    通道名称                    & 信号名           & 位宽                 & 备注          \\ \midrule
    \multirow{8}{*}{NewReq} & req\_id       & LLC\_REQ\_ID\_BITS & 用于标识请求      \\
                            & cpu\_id       & CPU\_ID\_BITS      & 发出请求的CPU ID \\
                            & is\_uncache   & 1                  & 是否非缓存请求     \\
                            & paddr         & PADDR\_BITS        & 物理地址        \\
    & req\_type  & 3          & \begin{tabular}[c]{@{}l@{}}0：GET\_SHARE\\ 1：GET\_EXC\\ 2：EVICT\_SHARE\\ 3：EVICT\_INV\\ 4：PREFETCH\end{tabular} \\
    & req\_size  & SIZE\_BITS & \begin{tabular}[c]{@{}l@{}}仅在UnCache请求中有效。\\ 该请求的长度。\end{tabular}                                              \\
    & with\_data & 1          & \begin{tabular}[c]{@{}l@{}}GET类型请求时，允许仅获\\ 取权限不获取数据。\\ 逐出类型请求时，标记是\\ 否写回数据。\end{tabular}                    \\
                            & user\_defined & *                  & 用户自定义的数据。   \\ \bottomrule
    \end{tabular}
\end{apptab}

\begin{apptab}[!htbp]
    \bicaption{\enspace “SnpAck通道定义}{\enspace SnpAck Channel Define}
    \stepcounter{app_tab}
    \label{apptab:3}
    \centering
    \footnotesize% fontsize
    \setlength{\tabcolsep}{4pt}% column separation
    \renewcommand{\arraystretch}{1.2}%row space 
    \begin{tabular}{@{}llll@{}}
    \toprule
    通道名称 & 信号名           & 位宽             & 备注             \\ \midrule
    \multirow{10}{*}{SnpRsp} & req\_id   & LLC\_REQ\_ID\_BITS & 响应的ID                                                                      \\
         & cpu\_id       & CPU\_ID\_BITS  & 发出响应的CPU ID    \\
                             & rsp\_type & 3                  & \begin{tabular}[c]{@{}l@{}}0：SNP\_ACK\\ 1：EVICT\\ 2：COMP\_ACK\end{tabular} \\
         & with\_data    & 1              & 是否携带数据         \\
         & is\_dirty     & 1              & 数据是否脏          \\
         & mask          & MASK\_SIZE     & UnCache访问时的掩码  \\
         & data          & DATA\_WIDTH    & 数据             \\
         & is\_uncache   & 1              & 标记是否为UnCache请求 \\
         & mshr\_id      & MSHR\_ID\_BITS & 目标MSHR ID      \\
         & evict\_cancel & 1              & 取消此次的逐出请求   \\ \bottomrule
    \end{tabular}
\end{apptab}

\begin{apptab}[!htbp]
    \bicaption{\enspace “SnpReq通道定义}{\enspace SnpReq Channel Define}
    \stepcounter{app_tab}
    \label{apptab:2}
    \centering
    \footnotesize% fontsize
    \setlength{\tabcolsep}{4pt}% column separation
    \renewcommand{\arraystretch}{1.2}%row space 
    \begin{tabular}{@{}llll@{}}
    \toprule
    通道名称 & 信号名           & 位宽             & 备注                                                                        \\ \midrule
    \multirow{8}{*}{SnpReq} & req\_id    & LLC\_REQ\_ID\_BITS & \begin{tabular}[c]{@{}l@{}}用于标识请求，与NewReq通道\\ 中的ID可以不一致\end{tabular}                        \\
         & cpu\_id       & CPU\_ID\_BITS  & Snp的目标CPU ID                                                              \\
         & paddr         & PADDR\_BITS    & 物理地址                                                                      \\
         & snp\_type     & 3              & \begin{tabular}[c]{@{}l@{}}0：TO\_SHARE\\ 1：TO\_INV\\ 2：QUERY\end{tabular} \\
         & mshr\_id      & MSHR\_ID\_BITS & 发出Snp的MSHR ID                                                             \\
         & req\_size     & SIZE\_BITS     & \begin{tabular}[c]{@{}l@{}}仅在UnCache请求中有效。\\ 该请求的长度。\end{tabular}         \\
                            & with\_data & 1                  & \begin{tabular}[c]{@{}l@{}}GET类型请求时，允许仅获\\ 取权限不获取数据。\\ 逐出类型请求时，标记是\\ 否写回数据。\end{tabular} \\
         & user\_defined & *              & 用户自定义的数据。                                                                 \\ \bottomrule
    \end{tabular}
\end{apptab}



\begin{apptab}[!htbp]
    \bicaption{\enspace “LLCRsp通道定义}{\enspace LLCRsp Channel Define}
    \stepcounter{app_tab}
    \label{apptab:4}
    \centering
    \footnotesize% fontsize
    \setlength{\tabcolsep}{4pt}% column separation
    \renewcommand{\arraystretch}{1.2}%row space 
    \begin{tabular}{@{}llll@{}}
    \toprule
    通道名称                     & 信号名           & 位宽                 & 备注                                                                    \\ \midrule
    \multirow{10}{*}{LLCRsp} & req\_id       & LLC\_REQ\_ID\_BITS & 与NewReq通道中的ID一致                                                       \\
                             & cpu\_id       & CPU\_ID\_BITS      & 目标CPU ID                                                              \\
                             & mshr\_id      & MSHR\_ID\_BITS     & 发出该请求的MSHR ID                                                         \\
                             & rsp\_type     & 3                  & \begin{tabular}[c]{@{}l@{}}0：READ\_RSP\\ 1：EVICT\_PERMIT\end{tabular} \\
                             & data          & DATA\_WIDTH        & 响应数据                                                                  \\
                             & state         & 3                  & \begin{tabular}[c]{@{}l@{}}0：INV\\ 1：SHARE\\ 2：EXCLUSIVE\end{tabular} \\
                             & need\_data    & 1                  & \begin{tabular}[c]{@{}l@{}}读响应时：是否携带有数据\\ 写允许时：是否需要数据\end{tabular}    \\
                             & is\_dirty     & 1                  & \begin{tabular}[c]{@{}l@{}}与非包含式设计有关，\\ 该数据是否为脏\end{tabular} \\
     & need\_write\_back & 1 & \begin{tabular}[c]{@{}l@{}}与非包含式设计有关，\\ 该数据是否需要写回\end{tabular} \\
                             & evict\_cancel & 1                  & 取消此次的逐出请求                                                          \\ \bottomrule
    \end{tabular}
\end{apptab}

}